.frame{
    position: absolute;
    width: 400px;
    height: 400px;
    box-shadow: 1px 2px 10px rgba(0,0,0,0.3);
    border-radius: 2px;
    background-color: #16a085;
    inset: 0;
    margin: auto;
    overflow: hidden;
    font-size: 0;
}

.center{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.line{
    fill: none;
    stroke: #fff;
    stroke-width: 3px;
    stroke-linecap: round;
    animation: line 2.5s linear infinite;
}

.circle{
    position: absolute;
    box-sizing: border-box;
    width: 30px;
    height: 30px;
    inset: 0;
    margin: auto;
    border-radius: 50%;
    border: 4px solid #fff;
    animation: circle 2.5s ease-out infinite both;
}

@keyframes line {
    0%{
        stroke-dasharray: 50 660;
        stroke-dashoffset: 780;
    }
    100%{
        stroke-dasharray: 50 660;
        stroke-dashoffset: 70;
    }
}

@keyframes circle {
    0%,50%{
        opacity: 1;
        transform: scale(0);
    }
    70%,100%{
        opacity: 0;
        transform: scale(1);
    }
}